A computer network connects multiple processor-controlled devices. A network allows the connected devices to provide various functions and services. In modern service-based systems, there are frequently many (often thousands) of destinations that may implement a given task. However, each destination may have different capabilities and constraints or limitations with respect to the task. If a client is familiar with a destination, the client can use this information to guide the configuration and invocation of the task. If, though, the client has not chosen the destination at the time of a job invocation (e.g. likely the case if a service is intermediating between the client and the destination), the client does not have a way to understand how to configure the task. Typically, it is not reasonable for the client to know the capabilities of each potential individual destination, as there could possibly be thousands of potential destinations.
Each time the end user or end user application performs a task, the goal is to accurately present all the devices, services features and options that are available on the network. Enterprise distributed network environments are particularly dynamic, and services available to an end user may come on and offline. Software updates can change the feature sets that are available in client software such as drivers. Network managers may need to enforce a policy on services deployed in the network and track usage of the deployed services. Present network systems require prior knowledge by a client service of the other services distributed across the enterprise, which then must tailor their behavior and feature sets accordingly. Such a pre-knowledge requirement for services requires tight coupling of components and services, special tool sets and human administration. It would be desirable therefore, to provide advancements to the art that overcome these and other disadvantages.